import { defineConfig, loadEnv } from "vite";
import vue from "@vitejs/plugin-vue";
import VueSetupExtend from "vite-plugin-vue-setup-extend";
import eslintPlugin from "vite-plugin-eslint";
import { resolve } from "path";
// import AutoImport from "unplugin-auto-import/vite";
// import Components from "unplugin-vue-components/vite";
// import { ElementPlusResolver } from "unplugin-vue-components/resolvers";

// https://vitejs.dev/config/
export default defineConfig(({ mode }) => {
	process.env = { ...process.env, ...loadEnv(mode, process.cwd()) };
    console.log('process=====',process.env)
	return {
		base: process.env.VITE_PUBLIC_PATH,
		plugins: [
			vue(),
			// * EsLint 报错信息显示在浏览器界面上
			eslintPlugin(),
			// * name 可以写在 script 标签上
			VueSetupExtend()
			// 自动导入ele组件 官方推荐 开发起来卡的一比 放弃
			// AutoImport({
			// 	resolvers: [ElementPlusResolver()]
			// }),
			// Components({
			// 	resolvers: [ElementPlusResolver()]
			// }),
		],
		resolve: {
			// 配置别名
			alias: {
				"@": resolve(__dirname, "src")
			},
			extensions: [".js", ".json", ".ts", ".vue"] // 使用路径别名时想要省略的后缀名
		},
		server: {
			host: "0.0.0.0",
			proxy: {
				// 选项写法
				// 此时会通过上面的代理规则，将源地址代理到目标地址，从而访问目标地址的接口
				// 需要注意的是 /api开头的 /不能丢，正则匹配也是
				"/api": {
					target: "http://192.198.30.155:8997", // 所要代理的目标地址
					rewrite: path => path.replace(/^\/api/, ""), // 重写传过来的path路径，比如 `/api/index/1?id=10&name=zs`（注意:path路径最前面有斜杠（/），因此，正则匹配的时候不要忘了是斜杠（/）开头的；选项的 key 也是斜杠（/）开头的）
					changeOrigin: true, // true/false, 默认值:false - 将主机报头的来源更改为目标URL
					pathRewrite: {
						// 加上这个重写配置后跨域问题就解决了
						"^/api": "" //重写接口,后面可以使用重写的新路径，一般不做更改
					}
				},
				'/route': {
					target: "http://192.198.30.154:8080",
					changeOrigin: true,
					rewrite: path => path.replace(/^\/route/, "/route")
				}
			}
		},
		build: {
			chunkSizeWarningLimit: 2048
		}
	};
});
